Fibre channel disk arrays employed by Storage Area Networks (SANs), and the like, typically comprise multiple drive-side fibre channel loops each having a plurality of devices (e.g., up to 127 devices per loop). In typical implementations, each fibre channel loop includes two disk array controllers and multiple drive enclosures, each having a plurality of drives. Each drive enclosure may further include an Enclosure Service Module (ESM) within, which monitors environmental conditions within the enclosure and attempts to ensure that individual drives within the enclosure do not cause the entire loop to become non-functional.
Normally, a fibre channel loop must be initialized when a new device enters the loop or when an error condition is detected on the loop. When the fibre channel loop (also referred to as “link”) goes down to reinitialize for some reason, it normally completes initialization within 15–30 milliseconds. If the link fails to complete reinitialization within 3–5 seconds, the ESMs bypass their “input” external ports and perform diagnostics to determine if all the drives within the enclosure are functioning properly. This diagnostic process is accomplished by bypassing all the drives and then issuing a Loop Initialization Primitive (LIP), which is the command needed to begin initialization. However, the ESMs do not bypass their “output” external ports. Thus, when the ESMs are performing bypassing and LIPing operations, other devices on the loop see the LIP completions, and can falsely determine that the entire link is up when it is not.
When the disk array controller detects that the link is up (i.e., a “link up”), it attempts to resume processing of commands to the devices on the loop. However, if the link is not truly “up”, these commands will fail to complete. When these commands fail to complete, the disk array controller typically seeks to restore operation of the fibre link by again attempting to initialize the link again via a LIP command. However, this approach is normally not successful since it has a tendency to put the link into a perpetual LIP condition from which it may not recover without manual intervention from an operator.
Consequently, it would be desirable to provide a method for validating operation of a fibre link of such disk arrays (i.e., for validating if the link is truly up) so that the link is not put into a perpetual LIP condition when initialized.